<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>SystemSharp: SystemSharp.Analysis.MethodCode Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">SystemSharp
   &#160;<span id="projectnumber">0.3</span>
   </div>
   <div id="projectbrief">A system-level modeling framework for designing real-time embedded systems</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Packages</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('class_system_sharp_1_1_analysis_1_1_method_code.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Events</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#properties">Properties</a> &#124;
<a href="class_system_sharp_1_1_analysis_1_1_method_code-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">SystemSharp.Analysis.MethodCode Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>A control-flow graph specialization for CLI methods  
 <a href="class_system_sharp_1_1_analysis_1_1_method_code.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for SystemSharp.Analysis.MethodCode:</div>
<div class="dyncontent">
 <div class="center">
  <img src="class_system_sharp_1_1_analysis_1_1_method_code.png" usemap="#SystemSharp.Analysis.MethodCode_map" alt=""/>
  <map id="SystemSharp.Analysis.MethodCode_map" name="SystemSharp.Analysis.MethodCode_map">
<area href="class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4.html" title="This data structure represents a control-flow graph " alt="SystemSharp.Analysis.ControlFlowGraph&lt; Ti &gt;" shape="rect" coords="0,0,279,24"/>
<area href="interface_system_sharp_1_1_components_1_1_i_has_attributes.html" title="An attribute container, i.e. an object which provides per-instance attributes. " alt="SystemSharp.Components.IHasAttributes" shape="rect" coords="289,0,568,24"/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a1fbf821179651cfdf36ba434018c89a5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_analysis_1_1_method_code.html#a1fbf821179651cfdf36ba434018c89a5">MethodCode</a> (<a class="el" href="class_system_sharp_1_1_analysis_1_1_i_l_instruction_info.html">ILInstructionInfo</a> iinfo, int entryPoint=0, ISet&lt; int &gt; exitPoints=null)</td></tr>
<tr class="separator:a1fbf821179651cfdf36ba434018c89a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c8c448bc6e7f5f748f10b51ba6019a4"><td class="memItemLeft" align="right" valign="top">new <a class="el" href="class_system_sharp_1_1_analysis_1_1_m_s_i_l_code_block.html">MSILCodeBlock</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_analysis_1_1_method_code.html#a9c8c448bc6e7f5f748f10b51ba6019a4">GetBasicBlockStartingAt</a> (int index)</td></tr>
<tr class="separator:a9c8c448bc6e7f5f748f10b51ba6019a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae1774af44e89d15a6ef01f7595f947d7"><td class="memItemLeft" align="right" valign="top">new <a class="el" href="class_system_sharp_1_1_analysis_1_1_m_s_i_l_code_block.html">MSILCodeBlock</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_analysis_1_1_method_code.html#ae1774af44e89d15a6ef01f7595f947d7">GetBasicBlockContaining</a> (int index)</td></tr>
<tr class="separator:ae1774af44e89d15a6ef01f7595f947d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89ff498472eeed63e9dc5fedc3a1bfa9"><td class="memItemLeft" align="right" valign="top">override bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_analysis_1_1_method_code.html#a89ff498472eeed63e9dc5fedc3a1bfa9">IsLocalPinned</a> (int local)</td></tr>
<tr class="memdesc:a89ff498472eeed63e9dc5fedc3a1bfa9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tells whether a local variable is pinned, see <a href="http://msdn.microsoft.com/en-us/library/f58wzh21%28v=vs.110%29.aspx">http://msdn.microsoft.com/en-us/library/f58wzh21%28v=vs.110%29.aspx</a>  <a href="#a89ff498472eeed63e9dc5fedc3a1bfa9">More...</a><br/></td></tr>
<tr class="separator:a89ff498472eeed63e9dc5fedc3a1bfa9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea4399ff4df449034b08f1c332865dad"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_analysis_1_1_method_code.html#aea4399ff4df449034b08f1c332865dad">GetNextOffset</a> (int offset)</td></tr>
<tr class="separator:aea4399ff4df449034b08f1c332865dad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb321b55a43e2ba5f78736348f5cb743"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_analysis_1_1_method_code.html#aeb321b55a43e2ba5f78736348f5cb743">GetPrevOffset</a> (int offset)</td></tr>
<tr class="separator:aeb321b55a43e2ba5f78736348f5cb743"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac81087543c5016a23dde7f6b6ba8c457"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_analysis_1_1_method_code.html#ac81087543c5016a23dde7f6b6ba8c457">GetPreStackDepth</a> (int index)</td></tr>
<tr class="separator:ac81087543c5016a23dde7f6b6ba8c457"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ef4323eb7978038a5439a802bf0212d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_analysis_1_1_method_code.html#a4ef4323eb7978038a5439a802bf0212d">GetPostStackDepth</a> (int index)</td></tr>
<tr class="separator:a4ef4323eb7978038a5439a802bf0212d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf2855e55b286dd9a87a998702b0b5e2"><td class="memItemLeft" align="right" valign="top">Attribute[]&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_analysis_1_1_method_code.html#acf2855e55b286dd9a87a998702b0b5e2">GetAttributes</a> ()</td></tr>
<tr class="memdesc:acf2855e55b286dd9a87a998702b0b5e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns all attributes of this container.  <a href="#acf2855e55b286dd9a87a998702b0b5e2">More...</a><br/></td></tr>
<tr class="separator:acf2855e55b286dd9a87a998702b0b5e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4.html">SystemSharp.Analysis.ControlFlowGraph&lt; Ti &gt;</a></td></tr>
<tr class="memitem:a0020d8ad2c74d005197c90f5fe700a14 inherit pub_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4.html#a0020d8ad2c74d005197c90f5fe700a14">ControlFlowGraph</a> (IEnumerable&lt; Ti &gt; instructions, Ti marshal, IInstructionInfo&lt; Ti &gt; iinfo, int entryPoint=0, ISet&lt; int &gt; exitPoints=null)</td></tr>
<tr class="memdesc:a0020d8ad2c74d005197c90f5fe700a14 inherit pub_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a new instance based on an instruction sequence  <a href="#a0020d8ad2c74d005197c90f5fe700a14">More...</a><br/></td></tr>
<tr class="separator:a0020d8ad2c74d005197c90f5fe700a14 inherit pub_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af63cace6d5aaf14d33002169490d1f51 inherit pub_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4.html#af63cace6d5aaf14d33002169490d1f51">IsBranch</a> (int index)</td></tr>
<tr class="separator:af63cace6d5aaf14d33002169490d1f51 inherit pub_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0f66e1d0dd6b8c1445c690f38662a04 inherit pub_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4.html#aa0f66e1d0dd6b8c1445c690f38662a04">IsBranchTarget</a> (int index)</td></tr>
<tr class="separator:aa0f66e1d0dd6b8c1445c690f38662a04 inherit pub_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6dc8f7463e58f11e8ac6849e50f1acd inherit pub_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memItemLeft" align="right" valign="top">Ti[]&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4.html#ac6dc8f7463e58f11e8ac6849e50f1acd">GetSuccessors</a> (int index)</td></tr>
<tr class="memdesc:ac6dc8f7463e58f11e8ac6849e50f1acd inherit pub_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given an instruction index, returns all possible successor instructions  <a href="#ac6dc8f7463e58f11e8ac6849e50f1acd">More...</a><br/></td></tr>
<tr class="separator:ac6dc8f7463e58f11e8ac6849e50f1acd inherit pub_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2dc7fac06bd1ad1fa8ea76cd94e4095a inherit pub_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memItemLeft" align="right" valign="top">Ti[]&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4.html#a2dc7fac06bd1ad1fa8ea76cd94e4095a">GetSuccessorsOf</a> (Ti ili)</td></tr>
<tr class="memdesc:a2dc7fac06bd1ad1fa8ea76cd94e4095a inherit pub_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given an instruction, returns all possible successor instructions  <a href="#a2dc7fac06bd1ad1fa8ea76cd94e4095a">More...</a><br/></td></tr>
<tr class="separator:a2dc7fac06bd1ad1fa8ea76cd94e4095a inherit pub_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05c9f79b103980e69809b9529e711525 inherit pub_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memItemLeft" align="right" valign="top">Ti[]&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4.html#a05c9f79b103980e69809b9529e711525">GetPredecessors</a> (int index)</td></tr>
<tr class="memdesc:a05c9f79b103980e69809b9529e711525 inherit pub_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given an instruction index, returns all possible predecessor instructions  <a href="#a05c9f79b103980e69809b9529e711525">More...</a><br/></td></tr>
<tr class="separator:a05c9f79b103980e69809b9529e711525 inherit pub_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac3e44c9f0c164a0936c8af1c47e52130 inherit pub_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memItemLeft" align="right" valign="top">Ti[]&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4.html#ac3e44c9f0c164a0936c8af1c47e52130">GetPredecessorsOf</a> (Ti ili)</td></tr>
<tr class="memdesc:ac3e44c9f0c164a0936c8af1c47e52130 inherit pub_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given an instruction, returns all possible predecessor instructions  <a href="#ac3e44c9f0c164a0936c8af1c47e52130">More...</a><br/></td></tr>
<tr class="separator:ac3e44c9f0c164a0936c8af1c47e52130 inherit pub_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad53cd4f85a326f93a65facd93644333a inherit pub_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4.html#ad53cd4f85a326f93a65facd93644333a">GetIDomIndex</a> (int index)</td></tr>
<tr class="memdesc:ad53cd4f85a326f93a65facd93644333a inherit pub_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given an instruction index, returns the index of its immediate dominator  <a href="#ad53cd4f85a326f93a65facd93644333a">More...</a><br/></td></tr>
<tr class="separator:ad53cd4f85a326f93a65facd93644333a inherit pub_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab8bbf4a61340fff1ff5b7388a3bfa846 inherit pub_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4.html#ab8bbf4a61340fff1ff5b7388a3bfa846">GetPostOrderIndex</a> (int index)</td></tr>
<tr class="memdesc:ab8bbf4a61340fff1ff5b7388a3bfa846 inherit pub_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given an instruction index, returns its associated post-order index  <a href="#ab8bbf4a61340fff1ff5b7388a3bfa846">More...</a><br/></td></tr>
<tr class="separator:ab8bbf4a61340fff1ff5b7388a3bfa846 inherit pub_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d54a4394119c32cd709e713f9576916 inherit pub_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memItemLeft" align="right" valign="top">IEnumerable&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4.html#a9d54a4394119c32cd709e713f9576916">GetLCASet</a> (IEnumerable&lt; int &gt; query)</td></tr>
<tr class="memdesc:a9d54a4394119c32cd709e713f9576916 inherit pub_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given a set of instruction indices, returns the set of their lowest common ancestors.  <a href="#a9d54a4394119c32cd709e713f9576916">More...</a><br/></td></tr>
<tr class="separator:a9d54a4394119c32cd709e713f9576916 inherit pub_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aefe2bdb6703327dc54e53fd13c829d76 inherit pub_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memItemLeft" align="right" valign="top">BasicBlock&lt; Ti &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4.html#aefe2bdb6703327dc54e53fd13c829d76">GetBasicBlockStartingAt</a> (int index)</td></tr>
<tr class="memdesc:aefe2bdb6703327dc54e53fd13c829d76 inherit pub_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the basic block which begins at the supplied instruction index  <a href="#aefe2bdb6703327dc54e53fd13c829d76">More...</a><br/></td></tr>
<tr class="separator:aefe2bdb6703327dc54e53fd13c829d76 inherit pub_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5d3e71c9bc2640da4bb8455a58087c3 inherit pub_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memItemLeft" align="right" valign="top">BasicBlock&lt; Ti &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4.html#aa5d3e71c9bc2640da4bb8455a58087c3">GetBasicBlockContaining</a> (int index)</td></tr>
<tr class="memdesc:aa5d3e71c9bc2640da4bb8455a58087c3 inherit pub_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the basic block which contains a given instruction  <a href="#aa5d3e71c9bc2640da4bb8455a58087c3">More...</a><br/></td></tr>
<tr class="separator:aa5d3e71c9bc2640da4bb8455a58087c3 inherit pub_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba67ead1a91741bf383422822f7af5b7 inherit pub_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memItemLeft" align="right" valign="top">override string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4.html#aba67ead1a91741bf383422822f7af5b7">ToString</a> ()</td></tr>
<tr class="separator:aba67ead1a91741bf383422822f7af5b7 inherit pub_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a87f04e24d24751159bd09b8d0a8f584d"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="class_system_sharp_1_1_analysis_1_1_method_code.html">MethodCode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_analysis_1_1_method_code.html#a87f04e24d24751159bd09b8d0a8f584d">Create</a> (MethodBase mi, int entryPoint=0, ISet&lt; int &gt; exitPoints=null)</td></tr>
<tr class="separator:a87f04e24d24751159bd09b8d0a8f584d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:af421cb060edd2e56315e0d8e841eee4c"><td class="memItemLeft" align="right" valign="top">override void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_analysis_1_1_method_code.html#af421cb060edd2e56315e0d8e841eee4c">Setup</a> ()</td></tr>
<tr class="memdesc:af421cb060edd2e56315e0d8e841eee4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs all essential data structures. The default implementation computes basic blocks, loop nesting structure and immediate dominators. Override if you need to compute more.  <a href="#af421cb060edd2e56315e0d8e841eee4c">More...</a><br/></td></tr>
<tr class="separator:af421cb060edd2e56315e0d8e841eee4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae8b8ed1024c8822401984c02dc0e8d32"><td class="memItemLeft" align="right" valign="top">override BasicBlock<br class="typebreak"/>
&lt; <a class="el" href="class_s_d_i_l_reader_1_1_i_l_instruction.html">ILInstruction</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_analysis_1_1_method_code.html#ae8b8ed1024c8822401984c02dc0e8d32">CreateBasicBlock</a> (int startIndex, int lastIndex)</td></tr>
<tr class="memdesc:ae8b8ed1024c8822401984c02dc0e8d32"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a basic block for a range of instructions. Override this if you want to create a specialized basic block implementation.  <a href="#ae8b8ed1024c8822401984c02dc0e8d32">More...</a><br/></td></tr>
<tr class="separator:ae8b8ed1024c8822401984c02dc0e8d32"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4.html">SystemSharp.Analysis.ControlFlowGraph&lt; Ti &gt;</a></td></tr>
<tr class="memitem:a6b5956c06a8a298304286a8005db00b0 inherit pro_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4.html#a6b5956c06a8a298304286a8005db00b0">ComputePredecessors</a> ()</td></tr>
<tr class="separator:a6b5956c06a8a298304286a8005db00b0 inherit pro_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a148c06fbb5564cdc5e36cf3ead7167ce inherit pro_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4.html#a148c06fbb5564cdc5e36cf3ead7167ce">AnalyzeLoops</a> ()</td></tr>
<tr class="memdesc:a148c06fbb5564cdc5e36cf3ead7167ce inherit pro_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Analyzes the loop nesting structure of the control-flow graph. The default implementation directs the tasks to Havlak's algorithm.  <a href="#a148c06fbb5564cdc5e36cf3ead7167ce">More...</a><br/></td></tr>
<tr class="separator:a148c06fbb5564cdc5e36cf3ead7167ce inherit pro_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af90c76096917b1aca642d97928562ab2 inherit pro_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4.html#af90c76096917b1aca642d97928562ab2">ComputeDominators</a> ()</td></tr>
<tr class="memdesc:af90c76096917b1aca642d97928562ab2 inherit pro_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the immediate dominator of each basic block. The default implementation directs the task to the Cooper-Harvey-Kennedy algorithm.  <a href="#af90c76096917b1aca642d97928562ab2">More...</a><br/></td></tr>
<tr class="separator:af90c76096917b1aca642d97928562ab2 inherit pro_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1421a284f4027dfed381b80ad9eac8fb inherit pro_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4.html#a1421a284f4027dfed381b80ad9eac8fb">ComputeBasicBlocks</a> ()</td></tr>
<tr class="memdesc:a1421a284f4027dfed381b80ad9eac8fb inherit pro_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs basic blocks from the instruction sequence.  <a href="#a1421a284f4027dfed381b80ad9eac8fb">More...</a><br/></td></tr>
<tr class="separator:a1421a284f4027dfed381b80ad9eac8fb inherit pro_methods_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="properties"></a>
Properties</h2></td></tr>
<tr class="memitem:a890d5625716c911892f2fe8a1b4d95f8"><td class="memItemLeft" align="right" valign="top">MethodBase&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_analysis_1_1_method_code.html#a890d5625716c911892f2fe8a1b4d95f8">Method</a><code> [get]</code></td></tr>
<tr class="separator:a890d5625716c911892f2fe8a1b4d95f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe763fd1fe48214146838cf7a4bc3977"><td class="memItemLeft" align="right" valign="top">IList&lt; LocalVariableInfo &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_analysis_1_1_method_code.html#abe763fd1fe48214146838cf7a4bc3977">LocalVariables</a><code> [get, set]</code></td></tr>
<tr class="separator:abe763fd1fe48214146838cf7a4bc3977"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2882b04e34ca87f02ea387abaf9746d"><td class="memItemLeft" align="right" valign="top">new <a class="el" href="class_system_sharp_1_1_analysis_1_1_i_l_instruction_info.html">ILInstructionInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_analysis_1_1_method_code.html#ad2882b04e34ca87f02ea387abaf9746d">InstructionInfo</a><code> [get]</code></td></tr>
<tr class="separator:ad2882b04e34ca87f02ea387abaf9746d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6739051f37259298af1ad627f0399ff"><td class="memItemLeft" align="right" valign="top">new <a class="el" href="class_system_sharp_1_1_analysis_1_1_m_s_i_l_code_block.html">MSILCodeBlock</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_analysis_1_1_method_code.html#ac6739051f37259298af1ad627f0399ff">EntryCB</a><code> [get]</code></td></tr>
<tr class="separator:ac6739051f37259298af1ad627f0399ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad58a906d1da690787c3955d0d4452bf4"><td class="memItemLeft" align="right" valign="top">new <a class="el" href="class_system_sharp_1_1_analysis_1_1_m_s_i_l_code_block.html">MSILCodeBlock</a>[]&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_analysis_1_1_method_code.html#ad58a906d1da690787c3955d0d4452bf4">BasicBlocks</a><code> [get]</code></td></tr>
<tr class="separator:ad58a906d1da690787c3955d0d4452bf4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05f2aa063a4c7d293237cbfeb92c0e96"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_analysis_1_1_method_code.html#a05f2aa063a4c7d293237cbfeb92c0e96">NumLocals</a><code> [get]</code></td></tr>
<tr class="separator:a05f2aa063a4c7d293237cbfeb92c0e96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header properties_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td colspan="2" onclick="javascript:toggleInherit('properties_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4')"><img src="closed.png" alt="-"/>&#160;Properties inherited from <a class="el" href="class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4.html">SystemSharp.Analysis.ControlFlowGraph&lt; Ti &gt;</a></td></tr>
<tr class="memitem:a80c2c7dfe11694ac7f2febc8b13bbb65 inherit properties_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memItemLeft" align="right" valign="top">IInstructionInfo&lt; Ti &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4.html#a80c2c7dfe11694ac7f2febc8b13bbb65">InstructionInfo</a><code> [get, set]</code></td></tr>
<tr class="memdesc:a80c2c7dfe11694ac7f2febc8b13bbb65 inherit properties_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Instruction information service  <a href="#a80c2c7dfe11694ac7f2febc8b13bbb65">More...</a><br/></td></tr>
<tr class="separator:a80c2c7dfe11694ac7f2febc8b13bbb65 inherit properties_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0c5a4fc92d5f9ee838b2d5ac0b258f0 inherit properties_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memItemLeft" align="right" valign="top">List&lt; Ti &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4.html#aa0c5a4fc92d5f9ee838b2d5ac0b258f0">Instructions</a><code> [get, set]</code></td></tr>
<tr class="memdesc:aa0c5a4fc92d5f9ee838b2d5ac0b258f0 inherit properties_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Instruction sequence  <a href="#aa0c5a4fc92d5f9ee838b2d5ac0b258f0">More...</a><br/></td></tr>
<tr class="separator:aa0c5a4fc92d5f9ee838b2d5ac0b258f0 inherit properties_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af5c2602bc2ba7e9d47ecb920770e65d9 inherit properties_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memItemLeft" align="right" valign="top">BasicBlock&lt; Ti &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4.html#af5c2602bc2ba7e9d47ecb920770e65d9">EntryCB</a><code> [get, set]</code></td></tr>
<tr class="memdesc:af5c2602bc2ba7e9d47ecb920770e65d9 inherit properties_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Entry point  <a href="#af5c2602bc2ba7e9d47ecb920770e65d9">More...</a><br/></td></tr>
<tr class="separator:af5c2602bc2ba7e9d47ecb920770e65d9 inherit properties_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a870910afc6340485e06e797a3a11c518 inherit properties_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memItemLeft" align="right" valign="top">BasicBlock&lt; Ti &gt;[]&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4.html#a870910afc6340485e06e797a3a11c518">BasicBlocks</a><code> [get, set]</code></td></tr>
<tr class="memdesc:a870910afc6340485e06e797a3a11c518 inherit properties_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="mdescLeft">&#160;</td><td class="mdescRight">All basic blocks  <a href="#a870910afc6340485e06e797a3a11c518">More...</a><br/></td></tr>
<tr class="separator:a870910afc6340485e06e797a3a11c518 inherit properties_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2956ca81392bf7caaba12e446ff5728 inherit properties_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4.html#aa2956ca81392bf7caaba12e446ff5728">MaxBBSize</a><code> [get]</code></td></tr>
<tr class="memdesc:aa2956ca81392bf7caaba12e446ff5728 inherit properties_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of instructions inside the largest basic block  <a href="#aa2956ca81392bf7caaba12e446ff5728">More...</a><br/></td></tr>
<tr class="separator:aa2956ca81392bf7caaba12e446ff5728 inherit properties_class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>A control-flow graph specialization for CLI methods </p>

<p>Definition at line <a class="el" href="_m_s_i_l_analysis_8cs_source.html#l00487">487</a> of file <a class="el" href="_m_s_i_l_analysis_8cs_source.html">MSILAnalysis.cs</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a1fbf821179651cfdf36ba434018c89a5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">SystemSharp.Analysis.MethodCode.MethodCode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_system_sharp_1_1_analysis_1_1_i_l_instruction_info.html">ILInstructionInfo</a>&#160;</td>
          <td class="paramname"><em>iinfo</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>entryPoint</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ISet&lt; int &gt;&#160;</td>
          <td class="paramname"><em>exitPoints</em> = <code>null</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="_m_s_i_l_analysis_8cs_source.html#l00513">513</a> of file <a class="el" href="_m_s_i_l_analysis_8cs_source.html">MSILAnalysis.cs</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a87f04e24d24751159bd09b8d0a8f584d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="class_system_sharp_1_1_analysis_1_1_method_code.html">MethodCode</a> SystemSharp.Analysis.MethodCode.Create </td>
          <td>(</td>
          <td class="paramtype">MethodBase&#160;</td>
          <td class="paramname"><em>mi</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>entryPoint</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ISet&lt; int &gt;&#160;</td>
          <td class="paramname"><em>exitPoints</em> = <code>null</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="_m_s_i_l_analysis_8cs_source.html#l00507">507</a> of file <a class="el" href="_m_s_i_l_analysis_8cs_source.html">MSILAnalysis.cs</a>.</p>

</div>
</div>
<a class="anchor" id="ae8b8ed1024c8822401984c02dc0e8d32"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">override BasicBlock&lt;<a class="el" href="class_s_d_i_l_reader_1_1_i_l_instruction.html">ILInstruction</a>&gt; SystemSharp.Analysis.MethodCode.CreateBasicBlock </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>startIndex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>lastIndex</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Creates a basic block for a range of instructions. Override this if you want to create a specialized basic block implementation. </p>
<p>This method does not check whether the given instruction range formally meets the criterion of a basic block, e.g. having no conditional branches except for the last instruction. It is up to the caller to supply valid arguments. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">startIndex</td><td>index of first instruction inside the basic block</td></tr>
    <tr><td class="paramname">lastIndex</td><td>index of last instruction inside the basic block</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a basic block for the specified instruction range</dd></dl>

<p>Reimplemented from <a class="el" href="class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4.html#a02fbac5e52aeca7c53b979a3b464d8d8">SystemSharp.Analysis.ControlFlowGraph&lt; Ti &gt;</a>.</p>

<p>Definition at line <a class="el" href="_m_s_i_l_analysis_8cs_source.html#l00649">649</a> of file <a class="el" href="_m_s_i_l_analysis_8cs_source.html">MSILAnalysis.cs</a>.</p>

</div>
</div>
<a class="anchor" id="acf2855e55b286dd9a87a998702b0b5e2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Attribute [] SystemSharp.Analysis.MethodCode.GetAttributes </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns all attributes of this container. </p>

<p>Implements <a class="el" href="interface_system_sharp_1_1_components_1_1_i_has_attributes.html#a98093299534e1c6090768272e14ccf0f">SystemSharp.Components.IHasAttributes</a>.</p>

<p>Definition at line <a class="el" href="_m_s_i_l_analysis_8cs_source.html#l00654">654</a> of file <a class="el" href="_m_s_i_l_analysis_8cs_source.html">MSILAnalysis.cs</a>.</p>

</div>
</div>
<a class="anchor" id="ae1774af44e89d15a6ef01f7595f947d7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">new <a class="el" href="class_system_sharp_1_1_analysis_1_1_m_s_i_l_code_block.html">MSILCodeBlock</a> SystemSharp.Analysis.MethodCode.GetBasicBlockContaining </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>index</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="_m_s_i_l_analysis_8cs_source.html#l00539">539</a> of file <a class="el" href="_m_s_i_l_analysis_8cs_source.html">MSILAnalysis.cs</a>.</p>

</div>
</div>
<a class="anchor" id="a9c8c448bc6e7f5f748f10b51ba6019a4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">new <a class="el" href="class_system_sharp_1_1_analysis_1_1_m_s_i_l_code_block.html">MSILCodeBlock</a> SystemSharp.Analysis.MethodCode.GetBasicBlockStartingAt </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>index</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="_m_s_i_l_analysis_8cs_source.html#l00534">534</a> of file <a class="el" href="_m_s_i_l_analysis_8cs_source.html">MSILAnalysis.cs</a>.</p>

</div>
</div>
<a class="anchor" id="aea4399ff4df449034b08f1c332865dad"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int SystemSharp.Analysis.MethodCode.GetNextOffset </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>offset</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="_m_s_i_l_analysis_8cs_source.html#l00554">554</a> of file <a class="el" href="_m_s_i_l_analysis_8cs_source.html">MSILAnalysis.cs</a>.</p>

</div>
</div>
<a class="anchor" id="a4ef4323eb7978038a5439a802bf0212d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int SystemSharp.Analysis.MethodCode.GetPostStackDepth </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>index</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="_m_s_i_l_analysis_8cs_source.html#l00635">635</a> of file <a class="el" href="_m_s_i_l_analysis_8cs_source.html">MSILAnalysis.cs</a>.</p>

</div>
</div>
<a class="anchor" id="ac81087543c5016a23dde7f6b6ba8c457"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int SystemSharp.Analysis.MethodCode.GetPreStackDepth </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>index</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="_m_s_i_l_analysis_8cs_source.html#l00630">630</a> of file <a class="el" href="_m_s_i_l_analysis_8cs_source.html">MSILAnalysis.cs</a>.</p>

</div>
</div>
<a class="anchor" id="aeb321b55a43e2ba5f78736348f5cb743"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int SystemSharp.Analysis.MethodCode.GetPrevOffset </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>offset</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="_m_s_i_l_analysis_8cs_source.html#l00563">563</a> of file <a class="el" href="_m_s_i_l_analysis_8cs_source.html">MSILAnalysis.cs</a>.</p>

</div>
</div>
<a class="anchor" id="a89ff498472eeed63e9dc5fedc3a1bfa9"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">override bool SystemSharp.Analysis.MethodCode.IsLocalPinned </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>local</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Tells whether a local variable is pinned, see <a href="http://msdn.microsoft.com/en-us/library/f58wzh21%28v=vs.110%29.aspx">http://msdn.microsoft.com/en-us/library/f58wzh21%28v=vs.110%29.aspx</a> </p>
<p>Default implementation returns always false. Override method to implement desired behavior. This feature was never tested in reality and probably should be removed in future releases, since pinned variables are only needed in unsafe code, and unsafe code is a very bad idea for hardware modeling anyway. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">local</td><td>index of local variable</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>whether variable is pinned</dd></dl>

<p>Reimplemented from <a class="el" href="class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4.html#a259683dc2ea7d3b84d09b0f7cdcea50f">SystemSharp.Analysis.ControlFlowGraph&lt; Ti &gt;</a>.</p>

<p>Definition at line <a class="el" href="_m_s_i_l_analysis_8cs_source.html#l00549">549</a> of file <a class="el" href="_m_s_i_l_analysis_8cs_source.html">MSILAnalysis.cs</a>.</p>

</div>
</div>
<a class="anchor" id="af421cb060edd2e56315e0d8e841eee4c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">override void SystemSharp.Analysis.MethodCode.Setup </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Constructs all essential data structures. The default implementation computes basic blocks, loop nesting structure and immediate dominators. Override if you need to compute more. </p>

<p>Reimplemented from <a class="el" href="class_system_sharp_1_1_analysis_1_1_control_flow_graph_3_01_ti_01_4.html#a2ff8154ddac48a7c4aa7086b988a46b4">SystemSharp.Analysis.ControlFlowGraph&lt; Ti &gt;</a>.</p>

<p>Definition at line <a class="el" href="_m_s_i_l_analysis_8cs_source.html#l00640">640</a> of file <a class="el" href="_m_s_i_l_analysis_8cs_source.html">MSILAnalysis.cs</a>.</p>

</div>
</div>
<h2 class="groupheader">Property Documentation</h2>
<a class="anchor" id="ad58a906d1da690787c3955d0d4452bf4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">new <a class="el" href="class_system_sharp_1_1_analysis_1_1_m_s_i_l_code_block.html">MSILCodeBlock</a> [] SystemSharp.Analysis.MethodCode.BasicBlocks</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="_m_s_i_l_analysis_8cs_source.html#l00530">530</a> of file <a class="el" href="_m_s_i_l_analysis_8cs_source.html">MSILAnalysis.cs</a>.</p>

</div>
</div>
<a class="anchor" id="ac6739051f37259298af1ad627f0399ff"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">new <a class="el" href="class_system_sharp_1_1_analysis_1_1_m_s_i_l_code_block.html">MSILCodeBlock</a> SystemSharp.Analysis.MethodCode.EntryCB</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="_m_s_i_l_analysis_8cs_source.html#l00525">525</a> of file <a class="el" href="_m_s_i_l_analysis_8cs_source.html">MSILAnalysis.cs</a>.</p>

</div>
</div>
<a class="anchor" id="ad2882b04e34ca87f02ea387abaf9746d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">new <a class="el" href="class_system_sharp_1_1_analysis_1_1_i_l_instruction_info.html">ILInstructionInfo</a> SystemSharp.Analysis.MethodCode.InstructionInfo</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="_m_s_i_l_analysis_8cs_source.html#l00520">520</a> of file <a class="el" href="_m_s_i_l_analysis_8cs_source.html">MSILAnalysis.cs</a>.</p>

</div>
</div>
<a class="anchor" id="abe763fd1fe48214146838cf7a4bc3977"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">IList&lt;LocalVariableInfo&gt; SystemSharp.Analysis.MethodCode.LocalVariables</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span><span class="mlabel">set</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="_m_s_i_l_analysis_8cs_source.html#l00499">499</a> of file <a class="el" href="_m_s_i_l_analysis_8cs_source.html">MSILAnalysis.cs</a>.</p>

</div>
</div>
<a class="anchor" id="a890d5625716c911892f2fe8a1b4d95f8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">MethodBase SystemSharp.Analysis.MethodCode.Method</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="_m_s_i_l_analysis_8cs_source.html#l00495">495</a> of file <a class="el" href="_m_s_i_l_analysis_8cs_source.html">MSILAnalysis.cs</a>.</p>

</div>
</div>
<a class="anchor" id="a05f2aa063a4c7d293237cbfeb92c0e96"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int SystemSharp.Analysis.MethodCode.NumLocals</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="_m_s_i_l_analysis_8cs_source.html#l00545">545</a> of file <a class="el" href="_m_s_i_l_analysis_8cs_source.html">MSILAnalysis.cs</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="_m_s_i_l_analysis_8cs_source.html">MSILAnalysis.cs</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespace_system_sharp.html">SystemSharp</a></li><li class="navelem"><a class="el" href="namespace_system_sharp_1_1_analysis.html">Analysis</a></li><li class="navelem"><a class="el" href="class_system_sharp_1_1_analysis_1_1_method_code.html">MethodCode</a></li>
    <li class="footer">Generated on Thu Dec 26 2013 14:21:51 for SystemSharp by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
  </ul>
</div>
</body>
</html>
